home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / pbwndo.zip / PBWINDOW.DOC < prev    next >
Text File  |  1991-09-01  |  103KB  |  3,433 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                   ┌────────────────────────┐
  25.                   │                        │
  26.                   │      Windows  for      │
  27.                   │       PowerBASIC       │
  28.                   │    ╔════ 2.50 ═════╗   │
  29.                   └────║ PBWindow.PBU  ║───┘
  30.                        ║ Documentation ║
  31.          ┌─────────────╚═══════════════╝─────────────┐
  32.          │   Copyright (c) 1987,90,91  Barry Erick   │
  33.          │           75300,214 Compuserve            │
  34.          └───────────────────────────────────────────┘
  35.  
  36.                         ┌─────────┐
  37.                   ┌─────┴───┐     │              (tm)
  38.                 ──│         │o    │──────────────────
  39.                   │   ┌─────┴╨──┐ │  Association of
  40.                   │   │         │─┘  Shareware
  41.                   └───│    o    │    Professionals
  42.                 ──────│    ║    │────────────────────
  43.                       └────╨────┘    MEMBER
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.                            Contents
  78.  
  79.  
  80.          1  Highlights . . . . . . . . . . . . . . . . . .  1
  81.          2  What is PBWindow . . . . . . . . . . . . . . .  5
  82.          3  How to use PBWindow with your programs . . . .  5
  83.          4  PBWindow Routines  . . . . . . . . . . . . . .  8
  84.          5  The Demo PWDemo.Bas  . . . . . . . . . . . . . 26
  85.          6  Potpourri  . . . . . . . . . . . . . . . . . . 26
  86.             6.1  Support available . . . . . . . . . . . . 26
  87.             6.2  Source Code Available . . . . . . . . . . 27
  88.             6.3  Update availability . . . . . . . . . . . 27
  89.             6.4  Distribution of the programs  . . . . . . 28
  90.             6.5  Warranty and Disclaimer . . . . . . . . . 29
  91.             6.6  Copyright Notices . . . . . . . . . . . . 29
  92.             6.7  Development System  . . . . . . . . . . . 29
  93.  
  94.       Appendix A  Public Variables                         31
  95.  
  96.       Appendix B  SHAREWARE                                35
  97.          B.1  Definition of Shareware  . . . . . . . . . . 35
  98.          B.2  Ombudsman  . . . . . . . . . . . . . . . . . 35
  99.  
  100.       Appendix C  PBWTools - Tools for PowerBASIC          37
  101.  
  102.       Index                                                45
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                  i
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.                                 ii
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.                             Tables
  210.  
  211.  
  212.       Table 1: Colors for Fc,Bc,Bfc, and Bbc . . . . . . . 10
  213.       Table 2: Box Title Locations . . . . . . . . . . . . 13
  214.       Table 3: Bars Generated  . . . . . . . . . . . . . . 19
  215.       Table 4: Distributed Files . . . . . . . . . . . . . 28
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.                                 iii
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  1  Highlights
  273.  
  274.  
  275.  PBWindow.PBU version 2.50 has these features:
  276.  
  277.      o  For PowerBASIC 2.1x Power Pak.
  278.      o  Faster than ever!
  279.      o  Many routines optimized.
  280.      o  Many routines moved to Object files.
  281.      o  PBMice - Mouse Support! - Included!
  282.      o  EGA/VGA 43/50 Line Support!
  283.      o  PBWTools - Toolbox included!
  284.      o  5 kinds of menus:
  285.  
  286.             -  No highlight
  287.             -  The item is highlighted
  288.             -  The item line is highlighted
  289.             -  An arrow is used
  290.             -  An arrow is used and the item is highlighted
  291.  
  292.      o  Ability to automatically make a menu selection.
  293.      o  Any letter or Function Key can be used to select menu
  294.         items.
  295.      o  A small featured text editor.
  296.      o  Fill Screen Area procedure for even faster screen writes.
  297.      o  Movable windows. Source already available in the Demo
  298.         program.
  299.      o  Zoom windows. A procedure allows you to zoom windows onto
  300.         the screen.
  301.      o  Tracking of all window attributes so when the window is
  302.         active, the window can be worked with, changed, and
  303.         restored to the original. This allows you to use the
  304.         window pointer (Wpt%) to reference any window and make
  305.         changes to it, if it is not overlaid by another window.
  306.      o  Noise can be turned off, even if a window requests it.
  307.      o  You can recolor a window instantly.
  308.      o  By changing one variable in the Include file, you can
  309.         specify a minimum of 5 windows to a maximum limited by
  310.         memory and the size of your program. Since PowerBASIC no
  311.         longer limits strings to 64k, and the windows are saved in
  312.         strings, PBWindow takes advantage of these new strings.
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  (c) 1987-90,91 Barry Erick                                 Page 1
  330.  
  331.  
  332.  
  333.  
  334.                                             PBWindow Documentation
  335.  
  336.  
  337.  
  338.      o  12 Title area in a screen:
  339.  
  340.             -  Top Left
  341.             -  Top Center
  342.             -  Top Right
  343.             -  Bottom Left
  344.             -  Bottom Center
  345.             -  Bottom Right
  346.             -  Top Left Vertical Side
  347.             -  Middle Left Vertical Side
  348.             -  Lower Left Vertical Side
  349.             -  Top Right Vertical Side
  350.             -  Middle Right Vertical Side
  351.             -  Lower Right Vertical Side
  352.  
  353.      o  Both vertical and horizontal centering within a box.
  354.      o  13 kinds of windows:
  355.  
  356.             -  Blank (no outline)
  357.             -  Blank (no outline, no borders)
  358.             -  Single line outline, top, bottom and sides
  359.             -  Double line outline, top, bottom and sides
  360.             -  Double Vertical line outline, single Horizontal
  361.                line outline
  362.             -  Single Vertical line outline, double Horizontal
  363.                line outline
  364.             -  Single horizontal outline, no vertical outline
  365.             -  Single horizontal outline, no vertical outline, no
  366.                vertical border
  367.             -  Double horizontal outline, no vertical outline
  368.             -  Double horizontal outline, no vertical outline, no
  369.                vertical border
  370.             -  Solid block outline, top, bottom, and sides
  371.             -  Light hatch outline, top, bottom, and sides
  372.             -  Medium hatch outline, top, bottom, and sides
  373.             -  Heavy hatch outline, top, bottom, and sides
  374.  
  375.  
  376.      o  10 kinds of shadows:
  377.  
  378.             -  None
  379.             -  Left solid drop shadow
  380.             -  Right solid drop shadow
  381.             -  Left transparent drop shadow
  382.             -  Right transparent drop shadow
  383.             -  Left light hatch drop shadow
  384.             -  Right light hatch drop shadow
  385.             -  Left medium hatch drop shadow
  386.             -  Right medium hatch drop shadow
  387.             -  Left heavy hatch drop shadow
  388.             -  Right heavy hatch drop shadow
  389.  
  390.      o  Clear individual lines in a window.
  391.      o  Change attributes in a window on a line by line basis.
  392.  
  393.  
  394.  
  395.  Page 2                                 (c) 1987-90,91 Barry Erick
  396.  
  397.  
  398.  
  399.  
  400.                                             PBWindow Documentation
  401.  
  402.  
  403.  
  404.      o  Restore a title outline after removing the title.
  405.      o  Hercules and IBM Mono compatibility. While this was
  406.         developed for color environments, it works fine for a mono
  407.         mode.
  408.      o  Movement of all $Inline code to Object code.
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  (c) 1987-90,91 Barry Erick                                 Page 3
  462.  
  463.  
  464.  
  465.  
  466.                                             PBWindow Documentation
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.                          This Page Is Blank
  497.                       (except for this print)
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  Page 4                                 (c) 1987-90,91 Barry Erick
  528.  
  529.  
  530.  
  531.  
  532.                                             PBWindow Documentation
  533.  
  534.  
  535.  
  536.  2  What is PBWindow
  537.  
  538.  
  539.  PBWindow.PBU and PBWindow.INC allows you to add pop-up windows to
  540.  your PowerBASIC programs. There are 27 Public routines in
  541.  PBWindow that you can access from your program:
  542.  
  543.     1.  FUNCTION GetAttribute         15.  SUB NewBoxColor
  544.     2.  SUB GetForAndBack             16.  SUB BuildMenu
  545.     3.  SUB PrtBox                    17.  SUB PrtAttrEOL
  546.     4.  SUB Rackett                   18.  SUB PrtAttrEOLBox
  547.     5.  SUB RemoveBox                 19.  SUB ClearBox
  548.     6.  SUB BoxTitle                  20.  SUB Recolor
  549.     7.  SUB MakeBox                   21.  SUB PBWindowInit
  550.     8.  SUB ZoomBox                   22.  SUB ScreenInit
  551.     9.  SUB PartBoxScroll             23.  SUB NewSaveMouse
  552.    10.  SUB BoxScroll                 24.  SUB NewMouseAns
  553.    11.  SUB CtrBox                    25.  SUB GetAvailableVideo
  554.    12.  SUB CtrAllBox                 26.  SUB FixAttr
  555.    13.  SUB PrtEOL                    27.  FUNCTION FansWindow
  556.    14.  SUB PrtEOLBox
  557.  
  558.  Several routines are in the PBWOBJ3.OBJ file that are PUBLIC.
  559.  They are :
  560.  
  561.     1.  SUB WritVidP
  562.     2.  SUB ReadVidP
  563.     3.  SUB Scroll
  564.     4.  SUB WriteScreenArea
  565.     5.  SUB SaveScreenArea
  566.     6.  SUB FillArea
  567.     7.  SUB DoSaveCursor
  568.     8.  SUB SetCursor
  569.     9.  SUB LocateCursor
  570.    10.  SUB FixLocate
  571.  
  572.  
  573.  3  How to use PBWindow with your programs
  574.  
  575.  
  576.  PBWindow can easily be added to your program. The only code
  577.  needed to compile is:
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  (c) 1987-90,91 Barry Erick                                 Page 5
  594.  
  595.  
  596.  
  597.  
  598.                                             PBWindow Documentation
  599.  
  600.  
  601.  
  602.                                   *
  603.                      $PBWSmall = 0
  604.                                *
  605.                      %False = 0
  606.                                        *
  607.                      %True = NOT %False
  608.                                         *
  609.                      %NeedRodent = %True
  610.                      $INCLUDE "PBWINDOW.INC"
  611.  
  612.  Place this code near the start of your program. Near means you
  613.  may need some metastatements in front of this, and a DEFINT A-Z,
  614.  as the unit uses this and the $Include expects this. %NeedRodent
  615.  can be %False if you do not have a mouse or do not want one to be
  616.  used. You should set the variable Max.Window% to some value
  617.  greater than the default of 5 by placing the statement
  618.  Max.Window% = nn where n is 5 or greater. The demo uses 14. Two
  619.  Constants MUST be used. These are %PBWSmall = 0 and %NeedRodent =
  620.  0 or -1. For the registered versions, %PBWSmall  means something.
  621.  For the non registered versions, this must be used for the
  622.  compile to work, but can be ignored otherwise. %NeedRodent, even
  623.  if -1 or %True, can be used even without a mouse. If none is
  624.  detected, the mouse routines are ignored anyway. You may want to
  625.  add these to the $Include file for simplicity.  See the demo
  626.  source for other Constants. Also, the variable AutoBuildTime% may
  627.                                           1
  628.  be set. If not, it defaults to 30 seconds . A command line option
  629.  allows the overriding by specifying a value of 20 to 15000
  630.  seconds.
  631.  
  632.  To use this, start PWDemo like this: PWDemo /300 and substitute
  633.  the desired time for the 300. In the example, the time delay will
  634.  be 300 seconds. The files needed to compile this with your
  635.  program (not the demo) are PBWindow.INC, PBMice.Inc, PBWObj3.Obj,
  636.  PBMiceun.PBU, and PBWindow.PBU.
  637.  
  638.  The .INC  files should reside in your Include directory, the .OBJ
  639.  files in your Object file directory, and the .PBU's in the Unit
  640.  directory. This will allow a compile to take place. However,
  641.  unless you add code to your program to make windows and use them,
  642.  the compiled code is useless.  The steps are:
  643.  
  644.     1.  Place PBWindow.INC, and PBMice.Inc  in your Include
  645.         directory
  646.  
  647.  _________________________________________________________________
  648.  
  649.  *      These can be placed in PBWindow.Inc so you only need the
  650.         $Include metastatement.
  651.  
  652.  1. The demo starts out with this value once the initial sign-on
  653.     screen is passed, and then, if this value is reached without a
  654.     key being hit, it speeds up the showing by using a 5 second
  655.     delay.
  656.  
  657.  
  658.  
  659.  Page 6                                 (c) 1987-90,91 Barry Erick
  660.  
  661.  
  662.  
  663.  
  664.                                             PBWindow Documentation
  665.  
  666.  
  667.  
  668.     2.  Place PBWindow.PBU, and  PBMiceun.PBU in your PBU
  669.         directory
  670.  
  671.     3.  Place PBWObj3.OBJ in your OBJ directory
  672.  
  673.     4.  Place the statement Max.Window% = nn where nn is the
  674.         maximum number of windows you need open at one time. 14 is
  675.         a good number, while 5 is the minimum and default if you
  676.         try to set it to a lesser number. Set the constant
  677.         %PBWSmall to 0, %False to 0, %True to NOT %False and
  678.         %NeedRodent to %True. A typical statement would be:
  679.  
  680.                             Max.Window% = 14
  681.                             %PBWSmall   =  0
  682.                             %False = 0
  683.                             %True = NOT %False
  684.                             %NeedRodent = %True
  685.  
  686.     5.  Place the $INCLUDE metastatement to your program to bring
  687.         in the PBWindow.INC file. If you have this in your INC
  688.         directory and have saved your configuration so PowerBASIC
  689.         knows where to find files (see Options/Directories and
  690.         Options/Save in the PowerBASIC manuals or menus or help).
  691.         A typical statement would be:
  692.  
  693.                           $INCLUDE "PBWindow.INC"
  694.  
  695.     6.  Make sure the file PBWOBJ3.OBJ is in your current
  696.         directory, the PB Object directory, or your path, as this
  697.         file is necessary. To use in your program, you must set
  698.         %NeedRodent to %True and use PBMice.Inc and PBMiceun.PBU
  699.         if you want mouse support, or set %NeedRodent to %False
  700.         and not include either PBMice.Inc or PBMiceun.PBU in your
  701.         program.
  702.  
  703.     7.  The Include file sets the default variable type to be
  704.         integer, so if your program does not have a DEFINT or
  705.         other DEFxxx statement in it, the default variable type
  706.         will be Integer and not single precision. This is an
  707.         important point if some routines no longer work when you
  708.         add PBWindows to them. It is perfectly safe to place a
  709.         DEFnnn statement after the $INCLUDE metastatement for the
  710.         rest of your program to default to your type. Note that
  711.         all calls to PBWindow routines require either Integer or
  712.         String variables and constants.
  713.  
  714.     8.  Add the various PBWindow statements to your program to add
  715.         the windows. Note that you have to Make A Box before you
  716.         can Print To A Box. A box is the same as a window, and may
  717.         be referenced to in either way in this documentation.
  718.  
  719.  To compile the demo, simply load PWDemo.Bas into the IDE and
  720.  press Alt-F9 or F10/Compile/Compile. From the PBC, simply type
  721.  PBC PWDemo -CE. All command switching has been taken care of in
  722.  
  723.  
  724.  
  725.  (c) 1987-90,91 Barry Erick                                 Page 7
  726.  
  727.  
  728.  
  729.  
  730.                                             PBWindow Documentation
  731.  
  732.  
  733.  
  734.  the program. Note that the demo expects to find PBMiceun.PBU and
  735.  PbWindow.PBU in either your default directory or PBUDestination
  736.  library. The object files, PBWObj3.OBJ, PBMouse.Obj and
  737.  PBWTools.OBJ are expected in your default library or PBObj
  738.  library and PWDemo.Inc,  PBWindow.INC, PBMice.INC, and
  739.  PBWTools.INC in your default or INClude directory. The files
  740.  Pwdemo.inc and PBWTools are only used in the demo and not needed
  741.  to use PBWindow.PBU, PBWObj3.OBJ and PbWindow.INC.  PBWTools is
  742.  Documented in Appendix C. PBMouse is documented in the file
  743.  PBMICED.EXE or PBMiced.Zip, available where you obtained this
  744.  file. In addition, this program comes with registration of
  745.  PBWindows. This does not automatically register PBMICE, however a
  746.  discounted registration of both is possible. See Registration on
  747.  page 27.
  748.  
  749.  
  750.  4  PBWindow Routines
  751.  
  752.  
  753.  There are three main routines to PBWindows, MakeBox, ZoomBox and
  754.  RemoveBox. MakeBox or ZoomBox are the first procedures to call to
  755.  make a window, and RemoveBox is the last called, to remove the
  756.  window. The rest of the 27 routines support these two main
  757.  routines.
  758.  
  759.  MakeBox         This routine makes a box. Your limit on the
  760.                  maximum number of windows open at any time is set
  761.                  with the Max.Window% variable. The calling
  762.                  sequence is:
  763.  
  764.  
  765.                       Call MakeBox(Wr%,Wc%,Wh%,Ww%,fc%,bc%,_
  766.                               BoxKind%,Shadow%,Racket%,Bfc%,Bbc%)
  767.  
  768.                  Where:
  769.  
  770.                  Wr%             WindowRow. The row on the screen
  771.                                  where the windows top row shall
  772.                                  be placed.
  773.  
  774.                  Wc%             WindowColumn. The Column on the
  775.                                  screen where the windows left
  776.                                  side will be placed.
  777.  
  778.                  Wh%             WindowHeight. The number of rows
  779.                                  (not the row number) that the
  780.                                  height of the window will take.
  781.                                  This must be two more than the
  782.                                  number of rows you plan to place
  783.                                  within the window.
  784.  
  785.                  Ww%             WindowWidth. The number of
  786.                                  columns (not the column number)
  787.                                  that the column will take.
  788.  
  789.  
  790.  
  791.  Page 8                                 (c) 1987-90,91 Barry Erick
  792.  
  793.  
  794.  
  795.  
  796.                                             PBWindow Documentation
  797.  
  798.  
  799.  
  800.                  fc%             ForegroundColor. This is the
  801.                                  color the text within the box
  802.                                  will take. See Table 1 for valid
  803.                                  numbers.
  804.  
  805.                  bc%             BackgroundColor. This is the
  806.                                  color the text within the box
  807.                                  will take as its background. See
  808.                                  table 1 for valid numbers.
  809.  
  810.                  BoxKind%        This defines if there will be a
  811.                                  outline around the window. There
  812.                                  are 11 legal values:
  813.  
  814.                                       0 = Blank (no outline)
  815.                                       1 = Single lines
  816.                                       2 = Double lines
  817.                                       3 = Double vert,
  818.                                           Single horiz
  819.                                       4 = Single vert,
  820.                                           Double horiz
  821.                                       5 = Single horiz, No vert
  822.                                       6 = Double horiz, No vert
  823.                                       7 = Solid border, all around
  824.                                       8 = Light Hatch, all around
  825.                                       9 = Medium Hatch, all around
  826.                                       10 = Heavy Hatch, all around
  827.                                       11 = Same as 5, with no
  828.                                            border
  829.                                       12 = Same as 6, with no
  830.                                            border
  831.                                       13 = Same as 0, with no
  832.                                            border
  833.  
  834.                  Shadow%         This defines if you want a black
  835.                                  drop shadow, and if so, if you
  836.                                  want that shadow to be solid,
  837.                                  transparent, or hatched. There
  838.                                  are 11 Drop Shadow types:
  839.  
  840.                                       0 = None
  841.                                       1 = Left , solid
  842.                                       2 = Right , solid
  843.                                       3 = Left , transparent
  844.                                       4 = Right , transparent
  845.                                       5 = Left , Light Hatch
  846.                                       6 = Right , Light Hatch
  847.                                       7 = Left , Medium Hatch
  848.                                       8 = Right , Medium Hatch
  849.                                       9 = Left , Heavy Hatch
  850.                                       10 = Right , Heavy Hatch
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  (c) 1987-90,91 Barry Erick                                 Page 9
  858.  
  859.  
  860.  
  861.  
  862.                                             PBWindow Documentation
  863.  
  864.  
  865.  
  866.                  Racket%         Defines whether you want noise
  867.                                  when the window opens or closes.
  868.                                  There are 2 valid values:
  869.  
  870.                                       0 = No Racket or Noise
  871.                                       1 = Racket or Noise
  872.  
  873.                  Bfc%            BoxlineForegroundColor. This is
  874.                                  the color the BoxKind line will
  875.                                  have if there is a boxline. For
  876.                                  it to be the same as Fc, use a
  877.                                  -1, otherwise all values for Fc
  878.                                  are valid for Bfc.
  879.  
  880.                  Bbc%            BoxlineBackgroundColor. This is
  881.                                  the color the BoxKind line
  882.                                  background will have if there is
  883.                                  a boxline. For it to be the same
  884.                                  as Bc, use a -1, otherwise all
  885.                                  values for Bc are valid for Bbc.
  886.                                  Note: If you have a shadow, do
  887.                                  not use 0 (or Black) for best
  888.                                  results.
  889.  
  890.                       Table 1: Colors for Fc,Bc,Bfc, and Bbc
  891.  
  892.                       0    Black (16)      8   Gray (24)
  893.                       1    Blue (17)       9   LtBlue (25)
  894.                       2    Green (18)     10   LtGreen (26)
  895.                       3    Cyan (19)      11   LtCyan (27)
  896.                       4    Red (20)       12   LtRed (28)
  897.                       5    Magenta (21)   13   LtMagenta (29)
  898.                       6    Brown (22)     14   Yellow (30)
  899.                       7    White (23)     15   Bright White (31)
  900.                                 16-31     Blinks Foreground
  901.  
  902.                  Note that the minimum and maximum values for Wr,
  903.                  Wc, Wh, and Ww are dependent on the Shadow%
  904.                  value. The screen positions are normally 1
  905.                  through 80 across and 1 through 25 up and down.
  906.                  When a shadow is involved, the bottom of the
  907.                  raster is always 1 more than Wh, as the width is
  908.                  also one greater than Ww specifies. If we are
  909.                  calling for a left drop shadow, then the starting
  910.                  column is actually one less than Wc, and so the
  911.                  minimum value is 2. For a right drop shadow, the
  912.                  maximum screen position is 79, as position 80 is
  913.                  taken by the shadow.
  914.  
  915.  ZoomBox         This routine makes a window that grows in size as
  916.                  it is made. Other than this, it is exactly the
  917.                  same as MakeBox. Refer to MakeBox on page 4 for
  918.                  details of the parameters.
  919.  
  920.  
  921.  
  922.  
  923.  Page 10                                (c) 1987-90,91 Barry Erick
  924.  
  925.  
  926.  
  927.  
  928.                                             PBWindow Documentation
  929.  
  930.  
  931.  
  932.  FillArea        This routine quickly fills a screen area with one
  933.                  character at a given attribute. Works on one full
  934.                  or partial line or a rectangular area on the
  935.                  screen. This does NOT change the window variable
  936.                  Wpt%. The calling sequence is:
  937.  
  938.                       Call FillArea(firstRow%,FirstColumn%,_
  939.                                     NumOfRows%,NumOfColms%,_
  940.                                     Character%,Attribute%
  941.  
  942.                  Where:
  943.  
  944.                  FirstRow%       This is the starting row on the
  945.                                  screen. The screens first row is
  946.                                  row 1.
  947.  
  948.                  FirstColumn%    This is the starting column for
  949.                                  the new box. This is offset 1,
  950.                                  where the first column on the
  951.                                  screen is 1.
  952.  
  953.                  NumOfRows%      This tells how many rows to make.
  954.                                  The minimum is 1, and the maximum
  955.                                  is the current maximum number of
  956.                                  rows on the screen.
  957.  
  958.                  NumColumns%     The width of the box, or how many
  959.                                  columns to make is carried by
  960.                                  this variable. Minimum is 1 and
  961.                                  max is 80.
  962.  
  963.                  Character%      This is the character to repeat
  964.                                  in the filled area.
  965.  
  966.                  Attribute%      This is the attribute to use to
  967.                                  make this one color box.
  968.  
  969.  Rackett         This procedure makes a noise if the variable
  970.                  NoNoise% is %True. If NoNoise% is %False, this
  971.                  procedure then does nothing. The Calling sequence
  972.                  is:
  973.  
  974.                       Call Rackett
  975.  
  976.  RemoveBox       This routine removes a opened window. It removes
  977.                  the last opened window, and there are no
  978.                  parameters to pass. The Calling sequence is:
  979.  
  980.                       Call RemoveBox
  981.  
  982.  FansWindow      This is a editor in the current window with word
  983.                  wrap.
  984.                  Example:
  985.  
  986.  
  987.  
  988.  
  989.  (c) 1987-90,91 Barry Erick                                Page 11
  990.  
  991.  
  992.  
  993.  
  994.                                             PBWindow Documentation
  995.  
  996.  
  997.  
  998.                       A$ = FansWindow$(winLin,WinPos,WinWid,_
  999.                                        Chars,fc,bc,fcc,bcc,destr)
  1000.  
  1001.                  Where:
  1002.  
  1003.                  WinLin     Is the line in the window to get the
  1004.                             input from.
  1005.  
  1006.                  WinPos     Is the offset on the WinLin to start
  1007.                             at.
  1008.  
  1009.                  WinWid     If -1, it allows input to the End of
  1010.                             WinLin, else it gets WinWid number of
  1011.                             characters before proceeding to the
  1012.                             next line.
  1013.  
  1014.                  Chars      This is the total number of characters
  1015.                             to get. The function exits on this
  1016.                             number or with ESC or ENTER.
  1017.  
  1018.                  fc         This is the foreground color of the
  1019.                             inputted characters.
  1020.  
  1021.                  bc         This is the background color of the
  1022.                             inputted characters.
  1023.  
  1024.                  fcc        This is the cursor foreground color.
  1025.  
  1026.                  bcc        This is the cursor background color.
  1027.  
  1028.                  destr      This variable, if true, says to
  1029.                             destroy whatever is on the line when
  1030.                             the routine is called, else kill it
  1031.                             when the first character is inputted.
  1032.  
  1033.                  This  gets Chars num of chars, or terminates with
  1034.                  Enter or ESC. If ESC, FansByeFlag% is true. The
  1035.                  array FWindXKey$(1-10) carries keys that can be
  1036.                  used to exit this with, in addition to a cr. If
  1037.                  excited, the variable FWXKey$ carries the exit
  1038.                  key. Destr, if true.. immediately kills the line
  1039.                  it is on. If false, it waits for the first key
  1040.                  press. If one of the exit keys, it exits, else it
  1041.                  then writes over the line.
  1042.  
  1043.  GetAttribute    This function returns a integer attribute when
  1044.                  supplied with Forecolor and BackColor, as defined
  1045.                  in Table 1. Usage:
  1046.  
  1047.                       variable% = GetAttribute(ForeColor%,_
  1048.                                                BackColor%)
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  Page 12                                (c) 1987-90,91 Barry Erick
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                             PBWindow Documentation
  1061.  
  1062.  
  1063.  
  1064.  GetForAndBack   This procedure supplies the ForeColor and
  1065.                  BackColor integers from a supplied integer
  1066.                  attribute. Calling sequence is:
  1067.  
  1068.                       Call GetForAndBack(attr%,forecolor%,_
  1069.                                          backcolor%)
  1070.  
  1071.                  where forecolor and backcolor are as defined in
  1072.                  Table 1.
  1073.  
  1074.  PrtBox          This procedure prints a string within the
  1075.                  currently (last) open window. A Call MakeBox()
  1076.                  must have first been made. Usage:
  1077.  
  1078.                       Call PrtBox(r1%,c1%,stuff$)
  1079.  
  1080.                  where:
  1081.  
  1082.                      o  r1% = Row within the window, not screen.
  1083.                         First available row is 1, and is
  1084.                         referenced to Wr+1. The last row available
  1085.                         is Wh-1.
  1086.                      o  c1% = Column within the window, not
  1087.                         screen. First available column is 1, and
  1088.                         is referenced to Wc+1. The last column is
  1089.                         Ww-1.
  1090.                      o  Stuff$ = The string to print at the Fc and
  1091.                         Fc used when the window was made with
  1092.                         MakeBox.
  1093.  
  1094.  BoxTitle        This places a title on the border line of a box
  1095.                  already made with a call to MakeBox(). There are
  1096.                  12 places, and values, that can be passed. Usage
  1097.                  is:
  1098.  
  1099.                       Call BoxTitle(Where%,What$,Bxfc%,Bxbc%)
  1100.  
  1101.                  Where:
  1102.  
  1103.                  Where%          Defines one of 12 places around
  1104.                                  the window box for the title to
  1105.                                  be:
  1106.  
  1107.                                    Table 2: Box Title Locations
  1108.  
  1109.                                    Horizontal        Vertical
  1110.                                  1 = Top Left    7 = Middle Left
  1111.                                  2 = Top Middle  8 = Middle Right
  1112.                                  3 = Top Right   9 = Top Left
  1113.                                  4 = Bot Left   10 = Bot Left
  1114.                                  5 = Bot Middle 11 = Top Right
  1115.                                  6 = Bot Right  12 = Bot Right
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  (c) 1987-90,91 Barry Erick                                Page 13
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                                             PBWindow Documentation
  1127.  
  1128.  
  1129.  
  1130.                  What$           Is the Text to place Where. Make
  1131.                                  sure it fits. If this is Null,
  1132.                                  then the border is rebuilt. Also,
  1133.                                  if first character of What$ =
  1134.                                  chr$(234) (Ω), then the title
  1135.                                  border location is rebuilt using
  1136.                                  the new string.
  1137.  
  1138.                  Bxfc%           Is the integer color What$ will
  1139.                                  be. It may be any valid
  1140.                                  foreground color as defined in
  1141.                                  Table 1. It will be the same as
  1142.                                  Bfc if made equal to -1.
  1143.  
  1144.                  Bxbc%           Is the integer color the
  1145.                                  background of What$ will be. It
  1146.                                  may be any valid background color
  1147.                                  as in Table 1. It usually looks
  1148.                                  best if it is the same as Bbc.
  1149.                                  Making it  equal to -1 will make
  1150.                                  it equal to Bbc.
  1151.  
  1152.  BoxScroll       This scrolls the text within a window up or down
  1153.                  one row at a time at a specified color. This
  1154.                  allows you to scroll off text in one color, and
  1155.                  bring it back in another color. The entire window
  1156.                  is cleared by calling this routine the number of
  1157.                  rows there is in the window. The calling sequence
  1158.                  is:
  1159.  
  1160.                       Call BoxScroll(Direction%,Fcolor%,Bcolor%)
  1161.  
  1162.                  Where:
  1163.  
  1164.                  Direction%      Can be one of two values:
  1165.                                  0 = Up one row
  1166.                                  1 = Down one row
  1167.  
  1168.                  FColor%         Is the color text will be on the
  1169.                                  new row, if any is pulled to it,
  1170.                                  which it usually isn't. Valid
  1171.                                  FColors are the same as Fc in
  1172.                                  Table 1. A value of -1 will make
  1173.                                  it the same as Fc.
  1174.  
  1175.                  BColor%         Is the color of the row
  1176.                                  background that is scrolled in.
  1177.                                  Valid BColors are the same as Bc,
  1178.                                  as shown in Table 1.  A value of
  1179.                                  -1 will make it the same as Bc.
  1180.  
  1181.  PartBoxScroll   This scrolls a partial area within the current
  1182.                  window. The cleared row is AT the toprow TO the
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  Page 14                                (c) 1987-90,91 Barry Erick
  1188.  
  1189.  
  1190.  
  1191.  
  1192.                                             PBWindow Documentation
  1193.  
  1194.  
  1195.  
  1196.                  NumOfRows. IF UpOrDown is 1 (scroll down) OR
  1197.                  upOrDown is 0 (scroll up)
  1198.                  Usage:
  1199.                  CALL PartBoxScroll(UpOrDown%,TopRow%,_
  1200.                                     BotRow%,ForegroundColor%,_
  1201.                                     BackgroundColor%)
  1202.  
  1203.                  Where:
  1204.  
  1205.                  UpOrDown        Is the direction to scroll. 1
  1206.                                  means scroll down, 0 to scroll
  1207.                                  up.
  1208.  
  1209.                  TopRow%         Is the uppermost row to scroll.
  1210.  
  1211.                  BotRow%         Is the bottommost row to scroll.
  1212.  
  1213.                  ForegroundColor%
  1214.                                  Is the foreground color for the
  1215.                                  new scrolled in row.
  1216.  
  1217.                  BackgroundColor%
  1218.                                  Is the background color for the
  1219.                                  new scrolled in row.
  1220.  
  1221.                  A CALL TO MakeBox must have been made first
  1222.  
  1223.  
  1224.  CtrBox          This is the same as PrtBox, except it centers the
  1225.                  text on the row within the window. The Calling
  1226.                  sequence is:
  1227.  
  1228.                       Call CtrBox(r1%,Stuff$)
  1229.  
  1230.                  Where:
  1231.  
  1232.                  r1%             Is the row within the window to
  1233.                                  center the string Stuff$.
  1234.  
  1235.                  Stuff$          Is the text to center within the
  1236.                                  window at row r1. The color was
  1237.                                  defined when the window was made
  1238.                                  with MakeBox().
  1239.  
  1240.  CtrAllBox       This is similar to CtrBox, except it centers the
  1241.                  text in the window, both vertically and
  1242.                  horizontal. The calling sequence is:
  1243.  
  1244.                       Call CtrAllBox(Which%,HowMany%,Stuff$)
  1245.  
  1246.                  Where:
  1247.  
  1248.                  Which%          Is the number of HowMany this
  1249.                                  line of Stuff$ is.
  1250.  
  1251.  
  1252.  
  1253.  (c) 1987-90,91 Barry Erick                                Page 15
  1254.  
  1255.  
  1256.  
  1257.  
  1258.                                             PBWindow Documentation
  1259.  
  1260.  
  1261.  
  1262.                  HowMany%        Is the Total Number of lines that
  1263.                                  are to be centered in the current
  1264.                                  window.
  1265.  
  1266.                  Stuff$          Is the text to center within the
  1267.                                  window at Which line of HowMany
  1268.                                  lines.
  1269.  
  1270.  PrtEOL          This does a erase to EndOfLine using the current
  1271.                  attribute of the window. The calling sequence is:
  1272.  
  1273.                       Call PrtEol(Row%,Column%)
  1274.  
  1275.                  Where:
  1276.  
  1277.                  Row%            Is the row within the window, not
  1278.                                  screen. First available row is 1,
  1279.                                  and is referenced to Wr+1. The
  1280.                                  last row available is Wh-1.
  1281.  
  1282.                  Column%         Is the column within the window,
  1283.                                  not screen. First available
  1284.                                  column is 1, and is referenced to
  1285.                                  Wc+1. The last column is Ww-1.
  1286.  
  1287.  PrtEOLBox       This prints a string within the window and then
  1288.                  does a EOL using the PrtEol procedure. The
  1289.                  calling sequence is:
  1290.  
  1291.                       Call PrtEOLBox(row%,column%,stry$)
  1292.  
  1293.                  Where:
  1294.  
  1295.                  Row%            Is the row within the window, not
  1296.                                  screen. First available row is 1,
  1297.                                  and is referenced to Wr+1. The
  1298.                                  last row available is Wh-1.
  1299.  
  1300.                  Column%         Is the column within the window,
  1301.                                  not screen. First available
  1302.                                  column is 1, and is referenced to
  1303.                                  Wc+1. The last column is Ww-1.
  1304.  
  1305.                  Stry$           Is the string to print.
  1306.  
  1307.  PrtAttrEOL      This procedure is similar to PrtEOL but it can
  1308.                  change the attributes of the erased line. The
  1309.                  calling sequence is:
  1310.  
  1311.                       Call PrtAttrEOL(row%,Column%,fc%,bc%)
  1312.  
  1313.                  Where:
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  Page 16                                (c) 1987-90,91 Barry Erick
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                                             PBWindow Documentation
  1325.  
  1326.  
  1327.  
  1328.                  Row%            Is the Row within the window to
  1329.                                  work with.
  1330.  
  1331.                  Column%         Is the Column of Row% within the
  1332.                                  window to preform the EOL with.
  1333.  
  1334.                  fc%             Is the new foreground color for
  1335.                                  the affected part of the line.
  1336.  
  1337.                  bc%             Is the new background color for
  1338.                                  the altered line.
  1339.  
  1340.  PrtAttrEolBox   This prints a string in the box at a given row
  1341.                  and then does a PrtAttrEOL for the remainder of
  1342.                  the row. The calling sequence is:
  1343.  
  1344.                       Call PrtAttrEolBox(row%,col%,str$,fc%,bc%)
  1345.  
  1346.                  Where:
  1347.  
  1348.                  row%            Is the row within the window to
  1349.                                  work with.
  1350.  
  1351.                  Column%         Is the column within the row% to
  1352.                                  work at.
  1353.  
  1354.                  Str$            Is the string to print at
  1355.                                  row%,Column%
  1356.  
  1357.                  fc%             Is the foreground color to use.
  1358.  
  1359.                  bc%             Is the background color to use.
  1360.  
  1361.  
  1362.  NewBoxColor     This procedure sets the saved attributes of the
  1363.                  current window to your specified color. This will
  1364.                  allow the next action within that window to be of
  1365.                  the new color. The calling sequence is:
  1366.  
  1367.                       Call NewBoxColor(frewe%,bvcxv%)
  1368.  
  1369.                  Where:
  1370.  
  1371.                  Frewe%          Is the foreground color.
  1372.  
  1373.                  Bvcxv%          Is the background color.
  1374.  
  1375.  BuildMenu       This procedure allows you to use the window
  1376.                  system for menus. Several types and actions are
  1377.                  provided. You can have a pointer to point to
  1378.                  items, a highlighted bar the width of the window,
  1379.                  or the width of the string. The first letter can
  1380.                  be highlighted. Selection can be made on all
  1381.                  types by moving the bar and hitting Enter, or by
  1382.  
  1383.  
  1384.  
  1385.  (c) 1987-90,91 Barry Erick                                Page 17
  1386.  
  1387.  
  1388.  
  1389.  
  1390.                                             PBWindow Documentation
  1391.  
  1392.  
  1393.  
  1394.                  hitting the highlighted first letter. Another
  1395.                  option allows you to hit the highlighted
  1396.                  character, and if there is more than one item
  1397.                  starting with that character, the next hit of the
  1398.                  same letter will select the next item, and this
  1399.                  will continue and wrap around to the first.
  1400.                  Selection is done with the Enter key or
  1401.                  automatically in this instance. New to this
  1402.                  version is the ability to highlight other than
  1403.                  the first character and highlight more than one
  1404.                  character. You can also assign a Function Key to
  1405.                  the selections.
  1406.  
  1407.                  To use BuildMenu, you must build a list of items
  1408.                  and assign them to the string array mList$().
  1409.                  This array is DIMmed to 20.  The last item in the
  1410.                  list must be either a null string ("") or the
  1411.                              2
  1412.                  string "@#$" . This signals the end of the list.
  1413.                  For example:
  1414.  
  1415.                       MList$(1) = "One"
  1416.                       MList$(2) = "Two"
  1417.                       MList$(3) = "@#$"  (or MList$(3)="")
  1418.  
  1419.                  Would signal to build a menu consisting of two
  1420.                  items. The calling sequence is:
  1421.  
  1422.                       CALL BuildMenu(mitem%,bmstart%,bmFirst%,_
  1423.                                      bment%,bmffore%,bmback%,_
  1424.                                      bmhfore%,bmhback%,bmbar%,_
  1425.                                      Mlist$(),Auto%,PointerColor%)
  1426.  
  1427.                  Where:
  1428.  
  1429.                  mitem%          Is the item number selected
  1430.                                  within the menu.
  1431.  
  1432.                  bmstart%        Is the item number to start with.
  1433.                                  This item will be the highlighted
  1434.                                  or pointed to item. Normally this
  1435.                                  is 1.
  1436.                                         3
  1437.                  bmFirst%        If True , this sets the first
  1438.                                  letter in each menu item to be
  1439.                                  highlighted, and selection by the
  1440.                                  first character is allowed. If
  1441.                                  False, then this is not possible.
  1442.  
  1443.  _________________________________________________________________
  1444.  
  1445.  2. This string is kept for compatibility reasons.
  1446.  
  1447.  3. Defined in PBWindow.INC, %True = -1 and %False = 0
  1448.  
  1449.  
  1450.  
  1451.  Page 18                                (c) 1987-90,91 Barry Erick
  1452.  
  1453.  
  1454.  
  1455.  
  1456.                                             PBWindow Documentation
  1457.  
  1458.  
  1459.  
  1460.                  bment%          If True, this means the Enter key
  1461.                                  is required on first letter
  1462.                                  selection. If False, then hitting
  1463.                                  the highlighted first character
  1464.                                  selects that item. Note that True
  1465.                                  allows several items to share the
  1466.                                  same first character, while
  1467.                                  setting this false will require
  1468.                                  all items to have a unique first
  1469.                                  character.
  1470.  
  1471.                  bmffore%        This is the foreground color to
  1472.                                  use for the first character
  1473.                                  highlight. -1 means to use the
  1474.                                  same as the box uses.
  1475.  
  1476.                  bmfback%        This is the background color to
  1477.                                  use for the first character
  1478.                                  highlight. -1 means to use the
  1479.                                  same color as the box uses.
  1480.  
  1481.                  bmhfore%        This is the foreground color for
  1482.                                  the menu item when highlighted
  1483.                                  with a bar. -1 means to use the
  1484.                                  same color as the box.
  1485.  
  1486.                  bmhback%        This is the background color for
  1487.                                  the menu item when highlighted
  1488.                                  with a bar. -1 means to use the
  1489.                                  same color as the box.
  1490.  
  1491.                  bmbar%          This selects the type of bar:
  1492.  
  1493.                                       Table 3: Bars Generated
  1494.  
  1495.                                  0 = No Highlight
  1496.                                  1 = The Item is Highlighted
  1497.                                  2 = The Box Width is Highlighted
  1498.                                  3 = An Arrow is used
  1499.                                  4 = An Arrow is used and the item
  1500.                                      is Highlighted
  1501.  
  1502.                  Mlist$()        This is the list for the menu as
  1503.                                  described above.
  1504.  
  1505.                  Auto%           This variable, if %True, will
  1506.                                  allow the menu to return the
  1507.                                  current highlighted item as the
  1508.                                  selection after a timeout, or by
  1509.                                  the user, whichever occurs first.
  1510.                                  If %False, the user must make the
  1511.                                  selection. The variable
  1512.                                  AutoBuildTime% determines the
  1513.                                  amount of time waiting. If this
  1514.  
  1515.  
  1516.  
  1517.  (c) 1987-90,91 Barry Erick                                Page 19
  1518.  
  1519.  
  1520.  
  1521.  
  1522.                                             PBWindow Documentation
  1523.  
  1524.  
  1525.  
  1526.                                  routine times out, and is
  1527.                                  returned automatically, Auto%
  1528.                                  will return %True. If the user
  1529.                                  hit a key to select an item, then
  1530.                                  Auto% will return %False.
  1531.  
  1532.                  PointerColor%   PointerColor% allows the pointer
  1533.                                  or arrow, to be a different color
  1534.                                  than the highlight. If this is
  1535.                                  set to a -1, then the color of
  1536.                                  the pointer will be the same as
  1537.                                  the highlight defined by the
  1538.                                  variable bmhfore%. This variable
  1539.                                  must be passed even if you do not
  1540.                                  use an option that specifies a
  1541.                                  pointer.
  1542.  
  1543.                  Two additional arrays are used for highlighting
  1544.                  other than the first character, or more than one,
  1545.                  or to assign a function key to an item:
  1546.  
  1547.                  BMenuNum(ItemNumber,1) =
  1548.                             The position of the character to be
  1549.                             highlighted in the menu selection. If
  1550.                             left out, this defaults to 1, as in
  1551.                             previous versions where only the first
  1552.                             character was used.
  1553.  
  1554.                  BMenuNum(ItemNumber,2) =
  1555.                             The number of characters to be
  1556.                             highlighted. This defaults to one
  1557.                             character if not used.
  1558.                             See SUB Screen9 for information on how
  1559.                             this is used.
  1560.  
  1561.                  BMenuKeys$(1,Item)=
  1562.                             The Function or ANY key to remap to
  1563.                             another key. For F1, this would be
  1564.                             Chr$(0,59). For ^Q, this would be
  1565.                             Chr$(17), etc.
  1566.  
  1567.                  BMenuKeys$(2,Item)=
  1568.                             The key to Match the above key. If a
  1569.                             selection in the menu is:
  1570.                             Quantum   <F1>
  1571.                             and Q is a valid selection, this would
  1572.                             = "Q"
  1573.                             For :
  1574.                             <F1> For this item
  1575.                             and <F1> is highlighted, this should
  1576.                             be "<"
  1577.  
  1578.                  If this item is Chr$(255), then this is a HotExit
  1579.                  item. This means it does not point to a menu
  1580.  
  1581.  
  1582.  
  1583.  Page 20                                (c) 1987-90,91 Barry Erick
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                                             PBWindow Documentation
  1589.  
  1590.  
  1591.  
  1592.                  item. The key matching this will allow a hot exit
  1593.                  from the menu without selecting anything.
  1594.  
  1595.                  The variable BuildReturn$ returns the key hit.
  1596.                  This allows several keys to be used. Do note that
  1597.                  you can't check to see if the returned
  1598.                  BuildReturn$ is equal to BmenuKeys$(1,x), since
  1599.                  the BmenuKeys$() array is redimemsioned at the
  1600.                  end of the BuildMenu procedure.
  1601.  
  1602.                  MapKeys    This is %True when you want to use a
  1603.                             function  key or other key in addition
  1604.                             to the highlighted key. This should be
  1605.                                         %False at all other times.
  1606.  
  1607.                  BuildReturn$
  1608.                             The key hit to return, IF this was a
  1609.                             hot exit key as described above.
  1610.  
  1611.                  StickyBm%  %True means the last item highlighted
  1612.                             will be highlighted again. This is
  1613.                             most useful if a hot exit is used to
  1614.                             bring in a help screen and you want to
  1615.                             return to that spot on return. This
  1616.                             variable is set to false in the unit
  1617.                             when found.
  1618.  
  1619.                  Also, see the variables Bar0to2Off% and
  1620.                  Bar3or4Off% in Appendix A.0.
  1621.  
  1622.  PrtAttrBox      This prints a string within the current window
  1623.                  using a different attribute than the default, but
  1624.                  does not change the attributes for the window for
  1625.                  subsequent calls. The calling sequence is:
  1626.  
  1627.                       Call PrtAttrBox(Row%,Column%,String$,Fore%,_
  1628.                                       Back%)
  1629.  
  1630.                  Where
  1631.  
  1632.                  Row%            Is the row within the current
  1633.                                  window to use.
  1634.  
  1635.                  Column%         Is the row within the current
  1636.                                  window and current line.
  1637.  
  1638.                  String$         This is the string to print at
  1639.                                  Row%, Column%.
  1640.  
  1641.                  Fore%           This is the foreground color to
  1642.                                  use. If set to -1, the default
  1643.                                  foreground color for the window
  1644.                                  is used.
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  (c) 1987-90,91 Barry Erick                                Page 21
  1650.  
  1651.  
  1652.  
  1653.  
  1654.                                             PBWindow Documentation
  1655.  
  1656.  
  1657.  
  1658.                  Back%           This is the background color to
  1659.                                  use. If set to -1, the default
  1660.                                  background color is used.
  1661.  
  1662.  ClearBox        This clears the current window to the foreground
  1663.                  and background color you specify. The calling
  1664.                  sequence is:
  1665.  
  1666.                       Call ClearBox(Fore%,Back%)
  1667.  
  1668.                  Where:
  1669.  
  1670.                  Fore%           Is the foreground color to use.
  1671.                                  If set to -1, the default
  1672.                                  foreground color is used.
  1673.  
  1674.                  Back%           Is the background color to use.
  1675.                                  If set to -1, the default
  1676.                                  background color is used.
  1677.  
  1678.  ReColor         This allows you to recolor the last window. This
  1679.                  was designed to do this because it would be hard
  1680.                  to work a routine to recolor only the portion of
  1681.                  a window that another one isn't sitting on, which
  1682.                  can happen if we allowed recoloring of more than
  1683.                  the last window. The calling sequence is:
  1684.  
  1685.                       Call ReColor(Fore%,Back%,BorderFore%,_
  1686.                                    BorderBack%)
  1687.  
  1688.                  Where:
  1689.  
  1690.                  Fore%           Is the new foreground color to
  1691.                                  use. If set to -1, the foreground
  1692.                                  color will not change.
  1693.  
  1694.                  Back%           Is the background color to use.
  1695.                                  If set to -1, the default
  1696.                                  background color is used for no
  1697.                                  apparent change in the
  1698.                                  background.
  1699.  
  1700.                  BorderFore%     This carries the new border
  1701.                                  foreground color. Again, if set
  1702.                                  to -1, the color remains
  1703.                                  unchanged.
  1704.  
  1705.                  BorderBack%     As in the others, this holds the
  1706.                                  new background color and if set
  1707.                                  to -1 does not change.
  1708.  
  1709.  WriteScreenArea This is called by MakeBox internally. When Remove
  1710.                  box is called after this, the previous window and
  1711.                  this one is removed. The usage is:
  1712.  
  1713.  
  1714.  
  1715.  Page 22                                (c) 1987-90,91 Barry Erick
  1716.  
  1717.  
  1718.  
  1719.  
  1720.                                             PBWindow Documentation
  1721.  
  1722.  
  1723.  
  1724.                       Call WriteScreenArea(UpperLeftRow%,_
  1725.                                            UpperLeftCol%,_
  1726.                                            NumOfRows%,NumOfCols%,_
  1727.                                            Text$,Attrs$)
  1728.  
  1729.                  Where:
  1730.  
  1731.                  UpperLeftRow%   is the upper left row number, 1
  1732.                                  to 25
  1733.  
  1734.                  UpperLeftCol%   is the upper left column of the
  1735.                                  box, 1 -80
  1736.  
  1737.                  NumOfCols%      is the total number of columns
  1738.                                  from the UpperLeftCol.
  1739.  
  1740.                  Text$           is the text to write to the
  1741.                                  screen. The length of the string
  1742.                                  is determined to be no greater
  1743.                                  than NumOfCols, as this routine
  1744.                                  is used to write not the entire
  1745.                                  box, but one row of the box.
  1746.  
  1747.                  Attrs$          is the attribute to use and must
  1748.                                  equal the length of text$
  1749.  
  1750.  SaveScreenArea  This is also called by MakeBox internally.The
  1751.                  usage is:
  1752.  
  1753.                       Call SaveScreenArea(UpperLeftRow%,_
  1754.                                           UpplerLeftCol%,_
  1755.                                           NumOfRows%,NumOfCols%,_
  1756.                                           SaveText$,SaveAttr$)
  1757.  
  1758.                  where:
  1759.  
  1760.                  UpperLeftRow%   is the upper left row number, 0
  1761.                                  to 24
  1762.  
  1763.                  UpperLeftCol%   is the upper left column of the
  1764.                                  box, 0 -79
  1765.  
  1766.                  NumOfCols%      is the total number of columns
  1767.                                  from the UpperLeftCol.
  1768.  
  1769.                  SaveText$       is the text retrieved from the
  1770.                                  screen. The length of the string
  1771.                                  is equal to NumOfCols, as this
  1772.                                  routine is used to read not the
  1773.                                  entire box, but one row of the
  1774.                                  box.
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  (c) 1987-90,91 Barry Erick                                Page 23
  1782.  
  1783.  
  1784.  
  1785.  
  1786.                                             PBWindow Documentation
  1787.  
  1788.  
  1789.  
  1790.                  SaveAttr$       is the attribute used on the
  1791.                                  screen and equals the length of
  1792.                                  text$
  1793.  
  1794.  PBWindowInit    This routine is used by the $Include file. It
  1795.                  returns much video and screen element
  1796.                  information. It also Dims dynamically all arrays.
  1797.                  If RetraceMode% is 0 then we do no retrace on
  1798.                  screen writes, else we do check, for a slower
  1799.                  display. This happens in CGA modes. If you need
  1800.                  to use this just to see the routines, the calling
  1801.                  sequence is:
  1802.  
  1803.                       CALL PBWindowInit
  1804.                            Returned:
  1805.  
  1806.                  ScreenSegment%  Returns the screen segment of the
  1807.                                  adapter, either &HB000 or &HB800.
  1808.  
  1809.                  RetraceMode%    Returns the retrace mode. If you
  1810.                                  have a cga adapter, then we use
  1811.                                  retrace protection, and this will
  1812.                                  return non zero. If zero, then
  1813.                                  there is no wait for retrace, and
  1814.                                  screen writes are much faster.
  1815.                                  You can fool PBWindows into not
  1816.                                  using retrace with your program
  1817.                                  by using the statement
  1818.                                  Retrace% = 0 after the $Include
  1819.                                  statement in your program.
  1820.  
  1821.                  EGAok%          Says this computers video
  1822.                                  display's maximum adapter is a
  1823.                                  EGA type.
  1824.  
  1825.                  VGAok%          Means this computer is capable of
  1826.                                  VGA work.
  1827.  
  1828.                  PBWindowInit calls ScreenInit to return those
  1829.                  variables.
  1830.  
  1831.  ScreenInit      This sub returns the ScreenSegment and Retrace
  1832.                  mode, unlike PBWindowInit, which Dims many arrays
  1833.                  and should only be called once. This may be
  1834.                  called as often as you wish if you need to update
  1835.                  the current modes. The calling sequence is:
  1836.  
  1837.                       Call ScreenInit(ScreenSegment%,RetraceMode%)
  1838.                            Returned:
  1839.                                 ScreenSegment% and RetraceMode%
  1840.                                 See PbWindowInit for details.
  1841.  
  1842.  Note: Max.Window% is set in your program to equal the maximum
  1843.  number of windows you will have open at any one time. This must
  1844.  
  1845.  
  1846.  
  1847.  Page 24                                (c) 1987-90,91 Barry Erick
  1848.  
  1849.  
  1850.  
  1851.  
  1852.                                             PBWindow Documentation
  1853.  
  1854.  
  1855.  
  1856.  be used prior to invoking the $Include metastatement. Also, the
  1857.  variable AutoBuildTime% should be set at this time if you want
  1858.  something other than the default of 0. Another constant is
  1859.  %PBWSmall, which must, for the distributed version, be set to 0.
  1860.  And, for this version, %NeedRodent must be used.
  1861.   Example:
  1862.  
  1863.       AutoBuildTime% = 60 'set timeout to 60 seconds
  1864.       Max.Window%    = 14 'set a max of 14 windows at any one time
  1865.       %PBWSmall      =  0 'necessary constant that MUST be placed
  1866.                           ' prior to the next statement or the
  1867.                           ' program will not compile.
  1868.       %NeedRodent    = -1 ' = use Mouse routines from PBMouse.
  1869.       $Include "PBWindows"
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  (c) 1987-90,91 Barry Erick                                Page 25
  1914.  
  1915.  
  1916.  
  1917.  
  1918.                                             PBWindow Documentation
  1919.  
  1920.  
  1921.  
  1922.  5  The Demo PWDemo.Bas
  1923.  
  1924.  
  1925.  The demo file does nothing but demonstrate the routines available
  1926.  in PBWindow. This file is menu driven, the menu being one built
  1927.  from the PBWINDOW unit. Following the instructions in section 3
  1928.  on page 5 will show you how to compile this demo. Briefly, the
  1929.  file, PWDemo.Bas goes to your \PB default directory,
  1930.  PWdemo.INC,PBMice.INC,PBWTools.INC, and PBWindow.INC to your
  1931.  \PB\INC directory, PBWTools.OBJ, PBMouse.OBJ, PBWTools.OBJ and
  1932.  PBWObj3.OBJ to your \PB\OBJ directory, and PBWindow.PBU and
  1933.  PBMiceUn.PBU to your \PB\PBU directory. The demo has directives
  1934.  in it to compile to .EXE, turn off error tests, and to turn off
  1935.  break tests. Library routines are stripped, as they are not
  1936.  needed for the demo. If you use the Command Line Compiler
  1937.  (PBC.EXE), and you do not have a PBC.CFG (configuration) file,
  1938.  you may place all the files in the same directory as your PBC.EXE
  1939.  file and simply type PBC PWDEMO /CE to compile this, as the demo
  1940.  program has metastatements in it to direct the compiler as to its
  1941.  duties.
  1942.  
  1943.  When you run the demo, either you make the selections by
  1944.  selecting and hitting enter on the main menu, and space-bar when
  1945.  asked to, click on the mouse or do nothing. The demo will
  1946.  automatically run if the users does nothing for 30 seconds, once
  1947.  the opening screen is passed. At that time, it changes to a 3
  1948.  second timeout to make for a faster moving demo than if this were
  1949.  left at 30 second.
  1950.  
  1951.  
  1952.  6  Potpourri
  1953.  
  1954.  
  1955.  6.1  Support available
  1956.  
  1957.  The author may be contacted in the Spectra area in the
  1958.  IBM Vendor B Forum on Compuserve (g PCVenB, Section 12) or in the
  1959.  PowerBASIC Category on Intelec. My Compuserve ID is 75300,214.
  1960.  If you do not have a modem, I may be reached at decent and normal
  1961.  Eastern Time Hours (No later than 9 pm Eastern Time) at
  1962.  717-675-3432.
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  Page 26                                (c) 1987-90,91 Barry Erick
  1980.  
  1981.  
  1982.  
  1983.  
  1984.                                             PBWindow Documentation
  1985.  
  1986.  
  1987.  
  1988.  6.2  Source Code Available
  1989.  
  1990.  PBWindows is Shareware. Source code to the PBWindow Unit and a
  1991.                              4
  1992.  printed manual are available . PBMouse source is a  shareware
  1993.  program by itself, and is available from the author of PBWindows
  1994.  at the reduced price of $5 if registered at the same time as
  1995.  PBWindows. You are required to purchase or register this program
  1996.  to use it for both commercial and non-commercial use. Source code
  1997.  with a manual is $25. Source to PBMiceun along with Source to
  1998.  PBWindows and a printed manual is $30. If you want this, send the
  1999.  appropriate amount, including current Pennsylvania State tax for
  2000.  Pennsylvanian's,  to:
  2001.  
  2002.                      Barry Erick
  2003.                      28 Ridge Street
  2004.                      Dallas, PA 18612
  2005.  
  2006.  Registration for Commercial Users is as follows: For the first
  2007.  100 copies of a Commercial program this is used in,
  2008.  registration of  two copies of both PBWindows and PBMouse is
  2009.  required.  The fee is $100 for 101 to 1000 programs sold and an
  2010.  $50 for each thousand or partial thousand, from that point on.
  2011.  Only one manual and disk will be sent, but the registration as
  2012.  outlined is all that is needed for commercial license terms.
  2013.  This license allows use of the INC. PBU and OBJ files, but does
  2014.  not allow the distribution of any of the Source code. Also let
  2015.  us know what program this will be used in.
  2016.  
  2017.  Be sure to state what disk format you want. This can be
  2018.  supplied on either 5 1/4 or 3.5 inch low density disks at no
  2019.  extra cost or high density at $2 additional. The latest version
  2020.  will be sent. You may also use the file Order to print a
  2021.  registration form.
  2022.  
  2023.  Foriegn orders must include $5 extra for shipping and the
  2024.  amount must be in US Dollars drawn on a US Bank or an
  2025.  International Money Order. All foreign funds will be returned,
  2026.  since it costs more to convert foreign funds to US funds than
  2027.  the registration costs.
  2028.  
  2029.  6.3  Update availability
  2030.  
  2031.  The .PBU file will need to be updated as new major versions of
  2032.  PowerBASIC become available, and possibly a minor upgrade will
  2033.  require this, also.  Therefore, the .PBU files will be made
  2034.  available to users. If the .OBJ file requires a update, it too
  2035.  will be made available. This availability may mean electronic
  2036.  distribution via CIS EasyPlex, or it might mean a disk will be
  2037.  sent to you. In any case, the new version of the entire program
  2038.  will replace the current version. Contact the author if you
  2039.  _________________________________________________________________
  2040.  
  2041.  4. Source to the Object code is not available.
  2042.  
  2043.  
  2044.  
  2045.  (c) 1987-90,91 Barry Erick                                Page 27
  2046.  
  2047.  
  2048.  
  2049.  
  2050.                                             PBWindow Documentation
  2051.  
  2052.  
  2053.  
  2054.  need upgrade information when newer versions of PowerBASIC are
  2055.  released. New source and printed manuals are available as a new
  2056.  registration.
  2057.  
  2058.  6.4  Distribution of the programs
  2059.  
  2060.  The source code for PBWindow.PBU, PBWindow.INC, PBWTools.INC,
  2061.  PBWTools.OBJ, PWDemo.Bas, PWdemo.Inc PBMiceun.PBU, PBMice.Inc,
  2062.  PBMouse.OBJ, and PBWObj3.OBJ are copyright material and are not
  2063.  in the Public Domain, as is any other file by this author
  2064.  included in this and any other package. The author retains
  2065.  property rights to any and all routines originated by the
  2066.  author. You may include the files PBWindow.PBU,
  2067.  PBWObj3.OBJ,PBWTools.INC, PBWTools.OBJ, PBMiceUn.PBU,
  2068.  PBMice.INC, PBMouse.OBJ and PBWindow.INC in your programs, but
  2069.  not the source code to the Units or Object code. This program,
  2070.  consisting of the files in Table 6.4, on page
  2071.  28, may be distributed to BBS's, commercial and private,
  2072.  provided they are distributed together, and the file group is
  2073.  named PBWindow.* or PBWndo.* if the file name limit is 6
  2074.  characters, as it is on Compuserve. The file extension, as
  2075.  noted by the *, shall reflect the the grouping method, such as
  2076.  .ARC, .PKA, .ZIP, or .LHZ. In addition, the files may be
  2077.  included in a self-extracting file with the name PBWndo.EXE, or
  2078.  PBWindow.EXE made by .LHZ OR .ZIP only. This restriction is
  2079.  placed on the self-extracting file because of the favorable
  2080.  overhead that LHarc and PKZip  places in its self extracting
  2081.  files. These files may also be distributed by clubs and user
  2082.  groups providing no more than $10 is charged for expenses and
  2083.  handling while distributing the files below. Note that this fee
  2084.  charged does not register the program.
  2085.  
  2086.                   Table 4: Distributed Files
  2087.  
  2088.              The following files may be freely copied
  2089.              and distributed as long as they remain together.
  2090.  
  2091.              PWDemo.Bas   PWDemo.INC
  2092.              PBWindow.Inc PBWindow.PBU
  2093.              PBWObj3.OBJ  PBWTools.INC
  2094.              PBWTools.OBJ PBMiceUn.PBU
  2095.              PBMICE.INC   PBMice.OBJ
  2096.              PBWindow.DOC Order
  2097.              Vendor.DOC   BBS.DOC
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  Page 28                                (c) 1987-90,91 Barry Erick
  2112.  
  2113.  
  2114.  
  2115.  
  2116.                                             PBWindow Documentation
  2117.  
  2118.  
  2119.  
  2120.  6.5  Warranty and Disclaimer
  2121.  
  2122.  Users of PBWindows must accept this disclaimer of warranty:
  2123.  "PBWindows is supplied as is.  The author disclaims all
  2124.  warranties, expressed or implied, including, without limitation,
  2125.  the warranties of merchantability and of fitness for any purpose.
  2126.  The author assumes no liability for damages, direct or
  2127.  consequential, which may result from the use of PBWindows."
  2128.  
  2129.  6.6  Copyright Notices
  2130.  
  2131.  PBMice.INC
  2132.  PBMiceUn.PBU
  2133.  PBMiceUn.BAS
  2134.  PBMouse.ASM
  2135.  PBMouse.OBJ
  2136.  PBWindow.PBU,
  2137.  PBWindow.BAS
  2138.  PBWObj3.OBJ
  2139.  PBWObj3.ASM
  2140.  PBWindow.INC,
  2141.  PBWTools.INC
  2142.  PBWTools.ASM
  2143.  PBWTools.OBJ
  2144.  PWDemo.BAS,
  2145.  PWDemo.INC
  2146.  PWDemo.EXE (c) 1987-1990, 1991 Barry Erick
  2147.  
  2148.  PowerBASIC (c) 1990 Robert S. Zale
  2149.  LHarc (c) Haruyasu Yoshizaki (Yoshi)
  2150.  ARC (c) System Enhancement Associates, Inc.
  2151.  PKPak, PKUnpak (c)  PKWare, Inc.
  2152.  PKZip, PKUnzip (c)  PKWare, Inc.
  2153.  Other trademarks and Copyrights by the copyright holder.
  2154.  
  2155.  6.7  Development System
  2156.  
  2157.  PBWindows was developed on a ZEOS 386SX-20 computer using MS-DOS
  2158.  5.0 and Quarterdecks QEMM 5.13 Memory Manager. The mice  on the
  2159.  system are a Logitec C7 with mouse driver 6.0 and a Kraft Serial
  2160.  mouse. The video system is a Cardinal VGA. The Assembly routines
  2161.  were written using Chicago Softwares ASMED and Borlands Turbo
  2162.  Assembler, TASM Ver 2.5 and 3.0, in MASM mode. Routines were
  2163.  tested on this system and a Tandy 100TX with EGA video and DrDos
  2164.  5.0, a Tandy 1400LT Laptop with Dos 3.2, a IBM PC with Hercules
  2165.  video and Dos 3.3, A PS/2 -25 with VGA Mono and a Clone with DOS
  2166.  2.11 and CGA video, among other systems used by beta testers.
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  (c) 1987-90,91 Barry Erick                                Page 29
  2178.  
  2179.  
  2180.  
  2181.  
  2182.                                             PBWindow Documentation
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  Page 30                                (c) 1987-90,91 Barry Erick
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                                             PBWindow Documentation
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.                             Appendix A
  2259.  
  2260.                          Public Variables
  2261.  
  2262.  
  2263.  These are the Public Variables in the file PBWindows. They may be
  2264.  referenced to in other areas of the program, but should not be
  2265.  altered nor reused for your own use.
  2266.  
  2267.  Attrs%(MaxWindow%)          Current attribute for which window.
  2268.  
  2269.  AutoBuildTime%              The time for the BuildMenu to wait
  2270.                              for user input before automatically
  2271.                              making the selection. The parameter
  2272.                              Auto% in BuildMenu, must be %True for
  2273.                              this to mean anything. The valid
  2274.                              values of AutoBuildTime% are 1 to
  2275.                              15000 seconds. The demo limits the
  2276.                              values to 20 to 15000 seconds.
  2277.  
  2278.  IsColr%                     If true, this system was in color
  2279.                              when PBWindow started. This does not
  2280.                              limit PbWindows to color, but lets
  2281.                              you decide if color is available. Use
  2282.                              ScreenSegment to decide if you even
  2283.                              want to try color. If ScreenSegment
  2284.                              is &B000 then we do have Hercules or
  2285.                              IBM Mono mode, and color should not
  2286.                              be attempted. VidMode% may also be
  2287.                              looked at. If it is 7, then this is a
  2288.                              mono mode.
  2289.  
  2290.  Bar0to2Off%                 This offset is added to the starting
  2291.                              column specified by the BmBar%
  2292.                              variable when BmBar is < 3. It is
  2293.                              defaulted to 3. This is active in
  2294.                              Menu display only.
  2295.  
  2296.  Bar3or4Off%                 Similar to Bar0to2Off%, this works
  2297.                              for values of BmBar% being 3 or 4.
  2298.                              The default is 0, and this, too, is
  2299.                              only active in Menu display modes.
  2300.  
  2301.  CGA%                        This is %True if the current mode is
  2302.                              CGA or 25 line mode.
  2303.  
  2304.  CGAOk%                      This variable, when %True, says this
  2305.                              machine is capable of %CGA mode.
  2306.  
  2307.  
  2308.  
  2309.  (c) 1987-90,91 Barry Erick                                Page 31
  2310.  
  2311.  
  2312.  
  2313.  
  2314.                                             PBWindow Documentation
  2315.  
  2316.  
  2317.  
  2318.  DeConForBuild%              This variable, when %True, flags
  2319.                              BuildMenu to use mouse routines in
  2320.                              addition to keyboard responses.
  2321.  
  2322.  EGA%                        When in EGA 43 line mode, this
  2323.                              variable is %True. %False otherwise.
  2324.  
  2325.  EGAOk%                      This machine is capable of EGA
  2326.                              operation if this is %True.
  2327.  
  2328.  BoxBorderAttrs%(MaxWindow%) The attributes of the border for each
  2329.                              window.
  2330.  
  2331.  BoxKinw%(MaxWindow%)        Keeps the window kind for each wpt%.
  2332.  
  2333.  FansByeFlag%                If FansWindow is exited with ESC,
  2334.                              this variable will be set %True.
  2335.  
  2336.  FWindXKey$()                This array carries the character keys
  2337.                              that may be used to exit FansWindow.
  2338.  
  2339.  FWXKey$                     The actual key used to exit
  2340.                              FansWindow is carried in this
  2341.                              variable.
  2342.  
  2343.  MapKey$()                   This array holds keys that may be
  2344.                              used in BuildMenu.
  2345.  
  2346.  BuildReturn$                The key used to exit or select a menu
  2347.                              item in Build Menu is carried in this
  2348.                              variable.
  2349.  
  2350.  StickyBm%                   This flag, when %True, says to keep
  2351.                              the present position in the menu when
  2352.                              returning from the function.
  2353.  
  2354.  BMenuNum%()                 This array carries the information
  2355.                              telling how to highlight a menu item
  2356.                              with.
  2357.  
  2358.  BmenuKey$()                 This carries the keys that may be
  2359.                              used for each menu number.
  2360.  
  2361.  SaveText$                   This internal string carries the
  2362.                              screen text before the current window
  2363.                              wrote over it.
  2364.  
  2365.  SaveAttr$                   This internal string carries the
  2366.                              screen attributes before the current
  2367.                              window wrote over it.
  2368.  
  2369.  ScreenRowIndex%             The row offsets are in this index.
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  Page 32                                (c) 1987-90,91 Barry Erick
  2376.  
  2377.  
  2378.  
  2379.  
  2380.                                             PBWindow Documentation
  2381.  
  2382.  
  2383.  
  2384.  TlCorner%()                 The character used for each border
  2385.                              type's top left corner is carried in
  2386.                              this array.
  2387.  
  2388.  TRight%()                   The character used for each border
  2389.                              type's top right corner is carried in
  2390.                              this array.
  2391.  
  2392.  BLeft%()                    The character used for each border
  2393.                              type's bottom left corner is carried
  2394.                              in this array.
  2395.  
  2396.  BRight%()                   The character used for each border
  2397.                              type's bottom right corner is carried
  2398.                              in this array.
  2399.  
  2400.  Horiz%()                    The character used for each border
  2401.                              type's top and bottom are carried in
  2402.                              this array.
  2403.  
  2404.  Verti%()                    The character used for each border
  2405.                              type's sides are carried in this
  2406.                              array.
  2407.  
  2408.  Max.Window%                 Variable carries the maximum number
  2409.                              of windows.
  2410.  
  2411.  Mbc%                        MakeBoxBackgroundColor holds the last
  2412.                              windows Background color.
  2413.  
  2414.  Mbbc%                       MakeBoxBorderBackColor holds last
  2415.                              window's border background color
  2416.                              used.
  2417.  
  2418.  Mbfc%                       MakeBoxBorderForeColor holds last
  2419.                              window's border foreground color.
  2420.  
  2421.  Mfc%                        MakeBoxForegroundColor holds the
  2422.                              foreground color of the last window.
  2423.  
  2424.  Mlist$(20)                  For carrying the items in a menu.
  2425.  
  2426.  Noise%(MaxWindow%)          Noise information for which window.
  2427.  
  2428.                              Note: You can also control how a
  2429.                              window is removed by changing the
  2430.                              value in this array. Normally, a
  2431.                              window is removed with noise if
  2432.                              Racket was made when the window was
  2433.                              made, and vice versa. To make a quiet
  2434.                              removal of a noisy window, set
  2435.                              Noise(WindowNumber) = 0 and to make
  2436.                              it noisy, if the window was quite,
  2437.                              make Noise(WindowNumber) = 1.
  2438.  
  2439.  
  2440.  
  2441.  (c) 1987-90,91 Barry Erick                                Page 33
  2442.  
  2443.  
  2444.  
  2445.  
  2446.                                             PBWindow Documentation
  2447.  
  2448.  
  2449.  
  2450.  NoNoise%                    If 0, then racket or noise is allowed
  2451.                              through the various routines. If
  2452.                              other than 0, then noise is not
  2453.                              allowed, even if the internal sub
  2454.                              Rackett is called.
  2455.  
  2456.  ScreenSegment%              This variable carries the video
  2457.                              segment address.
  2458.  
  2459.  Shadows%(MaxWindow%)        Shadow information for which window.
  2460.  
  2461.  RetraceMode%                This variable is used to see if we
  2462.                              need to check for snow. If
  2463.                              VidMode% = 7, then do NOT make this
  2464.                              %True. It will lock up a mono system.
  2465.                              You can force this off, by placing
  2466.                              the command, RetraceMode = 0 right
  2467.                              after the $Include PBwindow.Inc
  2468.                              statement in your program.
  2469.  
  2470.  PBWc%(MaxWindow%)           Virtual Window Column of which
  2471.                              window.
  2472.  
  2473.  PBWh%(MaxWindow%)           Virtual Window height of which
  2474.                              window.
  2475.  
  2476.  PBWr%(MaxWindow%)           Virtual WindowRow of which window.
  2477.  
  2478.  PBWw%(MaxWindow%)           Virtual Window Width of which window.
  2479.  
  2480.  VGA%                        If %True, this machine is currently
  2481.                              in VGA 50 line mode.
  2482.  
  2483.  VGAok%                      If %True, then this machine is
  2484.                              capable of VGA 50 line operation.
  2485.  
  2486.  VidMode%                    This returns the video mode the
  2487.                              system was in when PbWindows was
  2488.                              initialized. The most common text
  2489.                              color mode is 3, and the mode to look
  2490.                              for is 7. If this is 7, then we have
  2491.                              a Hercules or IBM Monograph adapter.
  2492.                              If we do, then do not use any colors
  2493.                              and definitely do not modify the
  2494.                              variable RetraceMode%, as that cannot
  2495.                              be %true for a mono system. It is
  2496.                              best to leave RetraceMode alone,
  2497.                              anyway.
  2498.  
  2499.  Wpt%                        Current window pointer, if 0, no
  2500.                              windows are open.
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  Page 34                                (c) 1987-90,91 Barry Erick
  2508.  
  2509.  
  2510.  
  2511.  
  2512.                                             PBWindow Documentation
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.                             Appendix B
  2523.  
  2524.                              SHAREWARE
  2525.  
  2526.  
  2527.  B.1  Definition of Shareware
  2528.  
  2529.  
  2530.  Shareware distribution gives users a chance to try software
  2531.  before buying it. If you try a Shareware program and continue
  2532.  using it, you are expected to register. Individual programs
  2533.  differ on details -- some request registration while others
  2534.  require it, some specify a maximum trial period. With
  2535.  registration, you get anything from the simple right to continue
  2536.  using the software to an updated program with printed manual.
  2537.  
  2538.  Copyright laws apply to both Shareware and commercial software,
  2539.  and the copyright holder retains all rights, with a few specific
  2540.  exceptions as stated on page 29. Shareware authors are
  2541.  accomplished programmers, just like commercial authors, and the
  2542.  programs are of comparable quality. (In both cases, there are
  2543.  good programs and bad ones!) The main difference is in the method
  2544.  of distribution. The author specifically grants the right to copy
  2545.  and distribute the software, either to all and sundry or to a
  2546.  specific group. For example, some authors require written
  2547.  permission before a commercial disk vendor may copy their
  2548.  Shareware.
  2549.  
  2550.  
  2551.  B.2  Ombudsman
  2552.  
  2553.  
  2554.   This program is produced by a member of the Association of
  2555.  Shareware Professionals ().  ASP wants to make sure that the
  2556.  shareware principle works for you. If you are unable to resolve a
  2557.  shareware-related problem with an ASP member by contacting the
  2558.  member directly, ASP may be able to help. The ASP Ombudsman can
  2559.  help you resolve a dispute or problem with an ASP member, but
  2560.  does not provide technical support for members' products. Please
  2561.  write to the ASP Ombudsman at 545 Grove Road, Muskegon, MI
  2562.  49442-9427 or send a Compuserve message via Easyplex to ASP
  2563.  Ombudsman 70007,3536
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  (c) 1987-90,91 Barry Erick                                Page 35
  2574.  
  2575.  
  2576.  
  2577.  
  2578.                                             PBWindow Documentation
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  Page 36                                (c) 1987-90,91 Barry Erick
  2640.  
  2641.  
  2642.  
  2643.  
  2644.                                             PBWindow Documentation
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.                             Appendix C
  2655.  
  2656.                   PBWTools - Tools for PowerBASIC
  2657.  
  2658.  
  2659.   PBWTools is an object file with a $Include file that provides
  2660.  many procedures and Functions for PowerBASIC.
  2661.  
  2662.  To use it, be sure PBWTools.INC and PBWTools.OBJ is in your
  2663.  current directory and include the following statement in your
  2664.  programs:
  2665.           $INCLUDE "PBWTOOLS.INC"
  2666.  The Procedures :
  2667.  
  2668.      o  CursorSize
  2669.      o  SizeCursor
  2670.      o  TotalEMSPages
  2671.      o  BootMemory
  2672.      o  XMSMemory
  2673.      o  GetDriveInfo
  2674.      o  Date
  2675.  
  2676.  and the Functions are:
  2677.      o  CoProc                          o  EMSExists
  2678.      o  Printers                        o  EMSBase
  2679.      o  ConvMem                         o  EMSVersion
  2680.      o  GamePorts                       o  XMSPresent
  2681.      o  Shll                            o  CDRoms
  2682.      o  Shrr                            o  ComPorts
  2683.      o  DesqView                        o  BExists
  2684.      o  DosAppend                       o  WhatCPU
  2685.      o  DosPrint                        o  VideoSegment
  2686.      o  DosAssign                       o  EgaVgaMemory
  2687.      o  DosShare                        o  MonitorType
  2688.      o  Win386
  2689.  
  2690.  They are explained next:
  2691.  
  2692.  FUNCTION CoProc%
  2693.                 Returns 0 if no Math Coprocessor, else it returns
  2694.                 -1
  2695.                   Example:
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  (c) 1987-90,91 Barry Erick                                Page 37
  2706.  
  2707.  
  2708.  
  2709.  
  2710.                                             PBWindow Documentation
  2711.  
  2712.  
  2713.  
  2714.                      Print "I found you have ";
  2715.                      if NOT CoProc% then
  2716.                        print "no ";
  2717.                       else
  2718.                        print "a ";
  2719.                      End If
  2720.                      Print "math chip."
  2721.  
  2722.  FUNCTION Printers%
  2723.                 Returns the number of printers attached.
  2724.                      Example:
  2725.  
  2726.                      Print "Printers you have:";printers%
  2727.  
  2728.  FUNCTION ConvMem%
  2729.                 Returns the amount of conventional memory.
  2730.                      Example:
  2731.  
  2732.                      Print "This computer has ";ConvMem;" kbytes
  2733.                      Print "conventional memory"
  2734.  
  2735.  FUNCTION GamePorts%
  2736.                 Returns the number of game Ports on the computer.
  2737.                      Example:
  2738.  
  2739.                      Print "Gameports on this computer:";GamePorts%
  2740.  
  2741.  FUNCTION Shll%(IntegerToShiftLeft,Count)
  2742.                 Shifts the passed integer Left Count times
  2743.                    Example:
  2744.  
  2745.                      Print Shll%(2,2)   'result is 4
  2746.  
  2747.  FUNCTION Shrr%(IntegerToShiftRight,Count)
  2748.                 Shifts the passed integer Right Count times
  2749.                 Example:
  2750.  
  2751.                      Print Shrr%(4,2)    'result is 2
  2752.  
  2753.  FUNCTION Desqview%
  2754.                 Returns 0 if Desqview is not running, -1 if it is.
  2755.                 example:
  2756.  
  2757.                      Print "Desqview is ";
  2758.                      if Not Desqview% Then print "not ";
  2759.                      Print "running"
  2760.  
  2761.  FUNCTION DOSAppend
  2762.                 This returns true (-1) if Dos Append is in
  2763.                 progress. Otherwise it returns 0.
  2764.                 Example:
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  Page 38                                (c) 1987-90,91 Barry Erick
  2772.  
  2773.  
  2774.  
  2775.  
  2776.                                             PBWindow Documentation
  2777.  
  2778.  
  2779.  
  2780.                      Print "DOS Append is ";
  2781.                      if NOT DOSAppend then print "not ";
  2782.                      Print "active."
  2783.  
  2784.  FUNCTION DOSPrint
  2785.                 This returns true (-1) if DOS Print is active,
  2786.                 otherwise 0 is returned.
  2787.                 Example:
  2788.  
  2789.                      Print "DOS Print is ";
  2790.                      if NOT DOSPrint then print "not ";
  2791.                      Print "active.";
  2792.  
  2793.  FUNCTION DOSAssign
  2794.                 This returns true (-1) if DOS Assign is active. 0
  2795.                 is returned otherwise.
  2796.                 Example:
  2797.  
  2798.                      Print "DOS Assign is ";
  2799.                      if NOT DosAssign then print "not ";
  2800.                      Print "active."
  2801.  
  2802.  FUNCTION DOSShare
  2803.                 This returns true (-1) if DOS Share has been
  2804.                 loaded, 0
  2805.                      if it has not.
  2806.                 Example:
  2807.  
  2808.                      Print "DOS Share is ";
  2809.                      if NOT DOSShare then Print "not ";
  2810.                      Print "active."
  2811.  
  2812.  FUNCTION Win386
  2813.                 This function returns the level of MS Windows if
  2814.                 you are running IN enhanced MODE within a DOS
  2815.                 window.
  2816.                 The levels returned are:
  2817.  
  2818.                      0, 80H  = Not running in Enhanced Mode
  2819.                      1, -1   = Windows Version 2.0
  2820.                      ELSE    = High bit = M<ajor version,
  2821.                                  Lo bit = Minor version
  2822.  
  2823.                  Example:
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  (c) 1987-90,91 Barry Erick                                Page 39
  2838.  
  2839.  
  2840.  
  2841.  
  2842.                                             PBWindow Documentation
  2843.  
  2844.  
  2845.  
  2846.                      Print "Windows 386 is ";
  2847.                      j% = Win386%
  2848.                      Select case j%
  2849.                             case 0,80h
  2850.                              print "is not running."
  2851.                             case 1, -1
  2852.                              print "running Version 2.0"
  2853.                             case else
  2854.                              print "Version ";Ltrim$(Str$(j% Mod 256);
  2855.                              print ".";Ltrim$(Str$(j%\256))
  2856.                      End Select
  2857.  
  2858.  FUNCTION EMSExists
  2859.                 Returns true is there is EMS memory, 0 otherwise.
  2860.                 Example:
  2861.  
  2862.                      Print "There is ";
  2863.                      if NOT EMSExists% then print "not ";
  2864.                      Print "EMS Memory"
  2865.  
  2866.  FUNCTION EMSBase
  2867.                 This returns the base address of the EMS Page
  2868.                 Example:
  2869.  
  2870.                      Print "EMS Page is ";Hex$(EmsBase)
  2871.  
  2872.  FUNCTION EMSVersion$
  2873.                 This returns a string with the EMS Version.
  2874.                 Example:
  2875.  
  2876.                      Print EmsVersion$
  2877.  
  2878.  FUNCTION XMSPresent%
  2879.                 This returns true if Xms is present, 0 or false if
  2880.                 not.
  2881.                 Example:
  2882.  
  2883.                      Print "This computer does ";
  2884.                      if NOT XMSPresent% then print "not ";
  2885.                      Print "have XMS memory present."
  2886.  
  2887.  FUNCTION CDRoms%
  2888.                 This returns True (-1) if a CDRom driver is found,
  2889.                 False (0) otherwise.
  2890.                 Example
  2891.  
  2892.                      If CdRoms% then
  2893.                        Print "Hey! You have a CDRom!"
  2894.                       Else
  2895.                        Print "Not yet, but someday you ";
  2896.                        Print "may have a CDRom.
  2897.                      End if
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  Page 40                                (c) 1987-90,91 Barry Erick
  2904.  
  2905.  
  2906.  
  2907.  
  2908.                                             PBWindow Documentation
  2909.  
  2910.  
  2911.  
  2912.  FUNCTION ComPorts%
  2913.                 This returns the number of comports present.
  2914.                 Example:
  2915.  
  2916.                      Print "This computer has ";
  2917.                      Print comports%;" comports."
  2918.  
  2919.  FUNCTION BExists%(Filename$)
  2920.                 Returns -1 if the passed path and filename are
  2921.                 found, 0 otherwise.
  2922.                    Example:
  2923.  
  2924.                      IF BExists%("Gloop.bas") = 0 then
  2925.                         print "File not found"
  2926.                       else
  2927.                         print  "File not found"
  2928.                      End if
  2929.  
  2930.  FUNCTION WhatCpu%
  2931.                 Returns the last 2 or 3 significant digits of the
  2932.                 cpu. This does not test for a V20 chip, so that
  2933.                 will be shown as a 86.
  2934.                    Example:
  2935.  
  2936.                      Print "The cpu is a 80";
  2937.                      Print Ltrim$(Str$(WhatCpu%))
  2938.  
  2939.  FUNCTION VideoSegment%
  2940.                 This returns the current video segment
  2941.                 Example:
  2942.  
  2943.                      Print "The current video segment is ";
  2944.                      Print Hex$(VideoSegment%)
  2945.  
  2946.  FUNCTION EgaVgaMemory%
  2947.                 This returns the number of 64k blocks in EgaVga
  2948.                 memory. If 4, this means there is at least 256k,
  2949.                 since all cards do not return the same id for more
  2950.                 memory than that. If not a Ega/Vga card, then 0 is
  2951.                 returned.
  2952.                    Example:
  2953.  
  2954.                      j%=EgaVgaMemory%
  2955.                      Print "Your video board has ";
  2956.                      if j%=4 then print "at least ";
  2957.                      Print Ltrim$(Str$(j%*64));"k memory"
  2958.  
  2959.  FUNCTION MonitorType%
  2960.                 This returns an integer representing the monitor
  2961.                 type:
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  (c) 1987-90,91 Barry Erick                                Page 41
  2970.  
  2971.  
  2972.  
  2973.  
  2974.                                             PBWindow Documentation
  2975.  
  2976.  
  2977.  
  2978.                      1 = Herc Mono
  2979.                      2 = Mono
  2980.                      3 = CGA or CGA Emulation
  2981.                      4 = EGA Mono
  2982.                      5 = EGA Color
  2983.                      6 = VGA Mono
  2984.                      7 = VGA Color
  2985.  
  2986.                    Example:
  2987.  
  2988.                      Print MonitorType%
  2989.  
  2990.  SUB CursorSize(Top%,Bottom%)
  2991.                 This returns the current cursor's Top% row and
  2992.                 Bottom% row.
  2993.  
  2994.  SUB SizeCursor(StartLine%,EndingLine%)
  2995.                 This sets the current cursor to start at the
  2996.                 StartLine% and continue to the EndingLine%. This
  2997.                 does not work under all routines.
  2998.  
  2999.  SUB BootMemory(ConvMemory%,ExtendedMemory%)
  3000.                 This returns the amount of Conventional Memory and
  3001.                 Extended Memory reported at boot time.
  3002.  
  3003.  Sub TotalEmsPages(TotPages%,TotPageMemK%,
  3004.                          UnallocatedPages%,UnalocMemK%)
  3005.                 This returns the total number of EMS pages in
  3006.                 TotPages. The total page memory in K in
  3007.                 TotPageMemK, the number of unallocated pages in
  3008.                 UnallocatedPages, and the Unallocated memory in k
  3009.                 in UnalocMemK.
  3010.  
  3011.  SUB XMSMemory(Size%,TotalFree%)
  3012.                 Returns the amount of XMS memory in k in size and
  3013.                 the amount of free XMS memory in k in TotalFree.
  3014.  
  3015.  SUB GetDriveInfo(drive%,TotBytes&,FreeBytes&)
  3016.                 Called with the current drive, this returns the
  3017.                 total bytes of the drive in TotBytes&, and the
  3018.                 free bytes on that drive in FreeBytes&.
  3019.                 The drive is :
  3020.  
  3021.                        0 = default or current drive
  3022.                        1 = A
  3023.                        2 = B
  3024.                      80h = C
  3025.                      81H = D , etc.
  3026.  
  3027.  Sub Date(Month$,Day%,Year%,WeekDayName$)
  3028.                 Called with initialized or uninitialized
  3029.                 variables, this returns the Day%,and Year% from
  3030.                 DOS and  Strings representing the weekday.. ie
  3031.                 Sunday, Monday, Tuesday, etc.and Month, such as
  3032.  
  3033.  
  3034.  
  3035.  Page 42                                (c) 1987-90,91 Barry Erick
  3036.  
  3037.  
  3038.  
  3039.  
  3040.                                             PBWindow Documentation
  3041.  
  3042.  
  3043.  
  3044.                 Jan Feb Mar, etc.  The strings is initialized to
  3045.                 be the length of the weekday or Month name only
  3046.                 even if the string passed to the routine is longer
  3047.                 or shorter than the result.
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  (c) 1987-90,91 Barry Erick                                Page 43
  3102.  
  3103.  
  3104.  
  3105.  
  3106.                                             PBWindow Documentation
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  Page 44                                (c) 1987-90,91 Barry Erick
  3168.  
  3169.  
  3170.  
  3171.  
  3172.                                             PBWindow Documentation
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.                                Index
  3183.  
  3184.  
  3185.         $INCLUDE 7                  CursorSize 42
  3186.         %PBWSmall 6, 25
  3187.                                     D
  3188.         A                           Date 42
  3189.         ASP See: Association of     Demo
  3190.            Shareware                   About 26
  3191.            Professionals               AutoBuildTime 6
  3192.         Association of                 Automatic Running 6,
  3193.            Shareware                   26
  3194.            Professionals 35            Compiling 8
  3195.         Auto 19                        Running 26
  3196.         AutoBuildTime 19, 25        Desqview 38
  3197.                                     Direction 14
  3198.         B                           directory 7
  3199.         BackgroundColor 17          Distributing the
  3200.         BExists 41                     programs 28
  3201.         BootMemory 42               DOSAppend 38
  3202.         BoxKind 9                   DOSAssign 39
  3203.         BoxlineBackgroundColor      DoSaveCursor 5
  3204.            10                       DOSPrint 39
  3205.         BoxlineForegroundColor      DOSShare 39
  3206.            10                       Down 14
  3207.         BoxScroll 14                drop shadow 2, 9
  3208.         BoxTitle 13
  3209.         BuildMenu 17                E
  3210.         BuildReturn$ 21             EgaVgaMemory 41
  3211.                                     EMSBase 40
  3212.         C                           EMSExists 40
  3213.         CDRoms 40                   EMSVersion$ 40
  3214.         Centering 15                Explode See:
  3215.         ClearBox 22                    Zoom,Zooming
  3216.         CLS See: ClearBox
  3217.         Command Line Switch 6       F
  3218.         commercial license 27       FansWindow 11
  3219.         Commercial Users 27         FillArea 5, 10
  3220.         compile 7                   FixLocate 5
  3221.         Compiling 5                 ForegroundColor 17
  3222.         ComPorts 41                 Functions
  3223.         Compuserve 26                  GetAttribute 12
  3224.         Constants 6
  3225.         ConvMem 38                  G
  3226.         CoProc 37                   GamePorts 38
  3227.         Copyright 35                GetAttribute 12
  3228.         CtrAllBox 15                GetDriveInfo 42
  3229.         CtrBox 15                   GetForAndBack 12
  3230.  
  3231.  
  3232.  
  3233.  (c) 1987-90,91 Barry Erick                                Page 45
  3234.  
  3235.  
  3236.  
  3237.  
  3238.                                             PBWindow Documentation
  3239.  
  3240.  
  3241.  
  3242.         H                              GamePorts 37
  3243.         Hercules 3                     MonitorType 37
  3244.                                        Printers 37
  3245.         K                              Shll 37
  3246.         Kinds of Windows See:          Shrr 37
  3247.            BoxKind                     VideoSegment 37
  3248.                                        WhatCPU 37
  3249.         L                              Win386 37
  3250.         lines 9                        XMSPresent 37
  3251.         LocateCursor 5              PBWTools Procedures
  3252.         Locked up system 34            BootMemory 37
  3253.                                        CursorSize 37
  3254.         M                              Date 37
  3255.         MakeBox 8, 10, 13, 15,         GetDriveInfo 37
  3256.            22, 23                      SizeCursor 37
  3257.         Manual                         TotalEMSPages 37
  3258.            printed 27                  XMSMemory 37
  3259.         Max.Window 6, 7, 24, 25     PointerColor 20
  3260.         Menu 17                     pop-up windows 5
  3261.         metastatement 6             Power Pak 1
  3262.         Mlist 19                    PowerBASIC 2.1x 1
  3263.         mList 18                    Printed manual 27
  3264.         MonitorType 41              Printers 38
  3265.         Mono 3                      Procedures
  3266.                                        BoxScroll 14
  3267.         N                              BuildMenu 17
  3268.         NewBoxColor 17                 ClearBox 22
  3269.         Noise 1                        CtrAllBox 15
  3270.         NoNoise 11                     CtrBox 15
  3271.         Number of Windows See:         FansWindow 11
  3272.            Max.Window                  FillArea 11
  3273.                                        GetForAndBack 13
  3274.         O                              MakeBox 8
  3275.         Ombudsman 35                   NewBoxColor 17
  3276.                                        PartBoxScroll 14
  3277.         P                              PBWindowInit 24
  3278.         PartBoxScroll 14               PrtAttrBox 21
  3279.         PBWindowInit 24                PrtAttrEolBox 17
  3280.         PBWSmall 25                    PrtBox 13
  3281.         PBWTools Functions             PrtEOL 16
  3282.            BExists 37                  PrtEOLBox 16
  3283.            CDRoms 37                   Rackett 11
  3284.            ComPorts 37                 Recolor 22
  3285.            ConvMem 37                  RemoveBox 11
  3286.            CoProc 37                   SaveScreenArea 23
  3287.            DesqView 37                 ScreenInit 24
  3288.            DosAppend 37                WriteScreenArea 22
  3289.            DosAssign 37                ZoomBox 10
  3290.            DosPrint 37              PrtAttrBox 21
  3291.            DosShare 37              PrtAttrEOL 16
  3292.            EgaVgaMemory 37          PrtAttrEolBox 17
  3293.            EMSBase 37               PrtBox 13
  3294.            EmsExists 37             PrtEOL 16
  3295.            EMSVersion 37            PrtEOLBox 16
  3296.  
  3297.  
  3298.  
  3299.  Page 46                                (c) 1987-90,91 Barry Erick
  3300.  
  3301.  
  3302.  
  3303.  
  3304.                                             PBWindow Documentation
  3305.  
  3306.  
  3307.  
  3308.         R                              BuildReturn$ 32
  3309.         Racket 33                      CGA 31
  3310.         Rackett 11                     CGAok 31
  3311.         ReadVidP 5                     DeConForBuild 31
  3312.         ReColor 22                     EGA 32
  3313.         recolor 1                      EGAok 24, 32
  3314.         RemoveBox 8, 11                FansByeFlag 32
  3315.         Restore Title 14               FWindXKey$() 32
  3316.         RetraceMode 24                 FWXKey$ 32
  3317.         Row 13                         Horiz() 33
  3318.                                        IsColr% 31
  3319.         S                              MapKey() 32
  3320.         SaveScreenArea 5, 23           Max.Window% 33
  3321.         screen area 11                 Mbbc 33
  3322.         screen positions 10            Mbc 33
  3323.         ScreenInit 24                  Mbfc 33
  3324.         ScreenSegment 24               Mfc 33
  3325.         Scroll 5, See:                 Mlist$(20) 33
  3326.            BoxScroll                   Noise(MaxWindow%) 33
  3327.         SetCursor 5                    NoNoise 33
  3328.         Shadow 9                       NumOfCols 23
  3329.         Shareware 35                   PBWc(MaxWindow%) 34
  3330.         Shll 38                        PBWh(MaxWindow%) 34
  3331.         Shll% 38                       PBWr(MaxWindow%) 34
  3332.         Shrr% 38                       PBWw(MaxWindow%) 34
  3333.         SizeCursor 42                  Racket 9
  3334.         Source code                    RetraceMode 34
  3335.            availability 27             SaveAttr$ 32
  3336.         Support 26                     Savetext$ 32
  3337.                                        ScreenRowIndex 32
  3338.         T                              ScreenSegment 34
  3339.         Title See: BoxTitle            Shadows(MaxWindow%)
  3340.         TotalEmsPages 42               34
  3341.         Tracking 1                     StickyBm 32
  3342.         transparent 2                  TlCorner() 32
  3343.                                        TRight() 33
  3344.         U                              Verti() 33
  3345.         Up 14                          VGA 34
  3346.                                        VGAok 24, 34
  3347.         V                              VidMode 34
  3348.         Variables                      Wpt 34
  3349.            Attrs(MaxWindow%) 31     VideoSegment 41
  3350.            AutoBuildTime 19, 31
  3351.            Bar3or4Off% 31           W
  3352.            Bar0to2Off% 31           weekday 42
  3353.            BLeft() 33               WhatCpu 41
  3354.            BMenuKey$() 32           Win386 39
  3355.            BMenuNum() 32            WriteScreenArea 5, 22
  3356.            BoxBorderAttrs(MaxWindow%)ritVidP 5
  3357.            32
  3358.            BoxKinw%(MaxWindow%)     X
  3359.            32                       XMSMemory 42
  3360.            BRight() 33              XMSPresent 40
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  (c) 1987-90,91 Barry Erick                                Page 47
  3366.  
  3367.  
  3368.  
  3369.  
  3370.                                             PBWindow Documentation
  3371.  
  3372.  
  3373.  
  3374.         Z                           ZoomBox 8, 10
  3375.         Zoom 1
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  Page 48                                (c) 1987-90,91 Barry Erick
  3432.  
  3433.